package com.ruijiang.controller.user_service;


import com.ruijiang.controller.ApiPrefix;
import com.ruijiang.dto.insert.PartnerInsertDto;
import com.ruijiang.dto.page.RegionPageDto;
import com.ruijiang.result.PageResult;
import com.ruijiang.service.UserService.PartnerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping(ApiPrefix.USER_SERVICE+"/partner")
@Slf4j
public class PartnerController {

    @Autowired
    private PartnerService partnerService;


    /**
     * 获取合作商列表
     * @return
     */
    @GetMapping("/search")
    public PageResult getPartnerList(RegionPageDto regionPageDto){
        log.info("获取合作商列表:{}",regionPageDto);
        PageResult pageResult = partnerService.getPartnerList(regionPageDto);
        return pageResult;
    }

    /**
     * 新增合作商
     * @param partnerInsertDto
     * @return
     */
    @PostMapping
    public Boolean insertPartner(@RequestBody PartnerInsertDto partnerInsertDto){

        log.info("新增合作商：{}",partnerInsertDto);
        partnerService.insertPartner(partnerInsertDto);
        return true;
    }

    /**
     * 重置合作商密码
     * @param id
     * @return
     */
    @PutMapping("/resetPwd/{id}")
    public Boolean resetPartnerPWdById(@PathVariable String id){
        log.info("重置合作商密码：{}",id);
        partnerService.resetPartnerPWdById(id);
        return true;
    }

    /**
     * 修改合作商
     * @param id
     * @return
     */
    @PutMapping("/{id}")
    public Boolean updatePartnerById(@PathVariable String id,@RequestBody PartnerInsertDto partnerInsertDto){
        log.info("修改合作商 id= {}=={}",id,partnerInsertDto);
        partnerService.updatePartner(id,partnerInsertDto);
        return true;

    }

    /**
     * 删除合作商
     * @return
     */
    @DeleteMapping("/{id}")
    public Boolean deletePartnerById(@PathVariable String id){
        log.info("删除合作商：{}",id);
        partnerService.deletePartnerById(id);
        return true;
    }


    @GetMapping("/count")
    public Integer getPartnerCount(){
        log.info("获取合作商总数");
        return partnerService.getPartnerCount();
    }
}
